package com.cskaoyan.javase.homework.senior._03file;

import java.io.File;


/*
   需求:递归删除目录与文件

   自己新建一个文件夹在文件夹当中自己放入一些文件,新建一些二级目录...
   然后使用递归的方式,将该目录里面的文件/文件夹全部删除
   注意:
        1.不要在C盘/系统盘里进行操作
        2.执行delete删除之前,一定要谨慎查看路径名,避免误删
 */
public class DeleteDirectoryRecursion {
    public static void main(String[] args) {
        File dir = new File("E:\\1\\2");
        deleteFile(dir);
    }

    /*
     *
     * 创建日期：2021/11/29 16:32
     * @param dir
     * @return void
     * @author 景天
     */
    private static void deleteFile(File dir) {
        // 列出所有的目录 文件
        File[] files = dir.listFiles();
        // 路径是文件,跳过
        if (files == null) {
            System.out.println("非目录路径!");
            return;
        }
        // 遍历
        for (File file : files) {
            // 如果是目录 递归
            if (file.isDirectory()) {
                deleteFile(file);
            } else {
                // 是文件直接删除
                System.out.println(file.getAbsolutePath() + " 删除成功与否 = " + file.delete());
            }
        }
        // 删除目录 只有空的情况下才能删除目录
        System.out.println(dir.getAbsolutePath() + " 删除成功与否 = " + dir.delete());
    }


}